﻿using Newtonsoft.Json;

namespace Fadada.FASC.SDK.DotNetCore.Model
{
    public class RespCorpGetInfo
    {
        /// <summary>
        /// 企业在应用系统中的唯一标识。长度最大64个字符。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "clientCorpId", Required = Required.Always)]
        public string ClientCorpId { get; set; }

        /// <summary>
        /// 企业名称。长度最大100个字符。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "clientCorpName", Required = Required.AllowNull)]
        public string ClientCorpName { get; set; }

        /// <summary>
        /// 授权状态，表示是否完成帐号授权绑定：
        /// unauthorized: 未授权 (openCorpId和corpId未完成帐号绑定)
        /// authorized: 已授权 (openCorpId和corpId已经完成帐号绑定)
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "bindingStatus", Required = Required.Always)]
        public string BindingStatus { get; set; }

        /// <summary>
        /// 返回企业实际授权的范围，企业授权范围列表逗号分隔。企业授权范围列表：
        /// ident_info: 身份信息 (涉及企业隐私数据，需得到企业授权)
        /// signtask_init: 发起签署任务 (在合同签署任务中，发起方地位特殊，需得到企业授权)
        /// resource_for_sign: 签署相关数据资源 (如文档和模板等，是属于企业的，需得到用户授权)
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "authScope", Required = Required.AllowNull)]
        public string[] AuthScope { get; set; }

        /// <summary>
        ///实名认证状态：
        /// unidentified: 未认证 (如果尚未授权绑定帐号，则当做未认证)
        /// identified: 已认证且有效
        /// ident_invalid：认证失效 (注意检查认证中心中的状态，认证可能失效/如过期)
        /// 该参数非常重要，因为只有有效实名认证的企业用户方可使用法大大电子签服务。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "identStatus", Required = Required.Always)]
        public string IdentStatus { get; set; }

        /// <summary>
        ///企业用户有效状态：
        /// disable: 禁用状态
        /// enable: 启用状态
        /// 
        /// 该参数非常重要，因为只有有效的用户方可使用法大大电子签服务。禁用状态的企业用户只能调用下面接口：
        /// 添加企业用户
        /// 更新企业用户
        /// 删除企业用户
        /// 恢复企业用户
        /// 查询企业用户基本信息。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "availableStatus", Required = Required.Always)]
        public string AvailableStatus { get; set; }
    }
}